import requests


def geocode(address: str):
    """
    将结构化地址转换为经纬度坐标，citycode, adcode。
    :param address: 结构化地址信息，例如“北京市朝阳区阜通东大街6号”。
    :return: 格式化后的经纬度坐标或其他相关信息。
    """
    print("已调用geocode")
    try:
        # 构造请求参数
        params = {
            "key": '15b4ad5020694dbd091886d7d9d24bb9',  # 注意：这里的 key 需要替换为有效的高德地图 API Key
            "address": address,
            "output": "json"
        }

        # 发送请求
        response = requests.get("https://restapi.amap.com/v3/geocode/geo", params=params)
        response.raise_for_status()  # 检查请求是否成功
        data = response.json()

        # 格式化结果
        if data["status"] == "1" and data["info"] == "OK":
            geocodes = data["geocodes"]
            if geocodes:
                return geocodes[0]  # 'location'、'citycode' 或 'adcode'
            else:
                return "未找到匹配的地址信息。"
        else:
            return f"Error: {data.get('info', '未知错误')}"
    except requests.exceptions.RequestException as e:
        return f"Error fetching geocode data: {e}"
